热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

容忍度|同人_人脸识别face_recognition安装与应用(附代码)

篇首语:本文由编程笔记#小编为大家整理,主要介绍了人脸识别----face_recognition安装与应用(附代码)相关的知识,希望对你有一定的参考价值。 

篇首语:本文由编程笔记#小编为大家整理,主要介绍了人脸识别----face_recognition安装与应用(附代码)相关的知识,希望对你有一定的参考价值。


  face_recognition号称是世界上最简单的基于python的人脸识别库,是在大名鼎鼎的深度学习框架dlib上做的整合,dlib模型在LFW(Labeled Faces in the Wild)能有99.38的准确率。另外face_recognition提供了相应的命令行工具,可以通过命令行来对图片文件夹进行人脸识别,非常的酷,跟随着文章开启步伐前行吧!

一、pip安装dlib库(建议第二种方法)

pip install Cmake
pip install boost


注意:一般还需要下载VS2019(建议不要用更老的版本!)社区版即可。安装好配置完进入下一步。


输入pip install dlib

二、下载whl文件安装

本人用的是python3.8 ,需要该文件请留言或者自行下载,请一定要根据版本下载对应的whl文件。

打开cmd,进入存放whl文件目录,如图:

二、安装face_recognition

pip install face_recognition


人脸识别并不需要使用dlib,但是安装face_recognition一定要先存在dlib库


三、使用pycharm进行人脸识别

如图,计算器已经存在face_recognition。


 views.py代码:

import os
import face_recognition
from django.http import HttpResponse
from numpy import ndarray
import numpy as np
from app.models import csone,ccun
import cv2
def cs(request):#拍照储存生成特征值并存储
# images = os.listdir('D:/opencv.img')
# 加载图像
a = input() #输入的是摄像头拍下图片的命名
print('ok')
cap = cv2.VideoCapture(0) # 打开摄像头,如果外加摄像头便不是0哦
while (1):
# get a frame
ret, frame = cap.read()
frame = cv2.flip(frame, 1) # 摄像头是和人对立的,将图像左右调换回来正常显示
# show a frame
cv2.imshow("capture", frame) # 生成摄像头窗口
b = input()
print('ok')
b=int(b)
if cv2.waitKey(1) & b==1: # 按下1 类似于摄像头拍照
cv2.imwrite("D:/opencv.img/" + a +".jpg", frame) # 并把图片保存到路径的文件夹
break
cap.release()
cv2.destroyAllWindows()
image_to_be_matched = face_recognition.load_image_file("D:/opencv.img/" + a +".jpg")

# 将加载图像编码为特征向量,这句是参考别人的代码哦
image_to_be_matched_encoded = face_recognition.face_encodings(image_to_be_matched)[0]
alist = ndarray.tolist(image_to_be_matched_encoded)#将矩阵转化为list,便于储存进mysql
print(alist)
for i in alist:
print(i)
people=ccun()#ccun是自定义的一个models
people.tezheng=i
people.name=a
people.save()
return HttpResponse("tt")
def opencvcs(request):#人脸识别
list = []
students = ccun.objects.filter(name='thth')#筛选出某人的特征值
for student in students:
studentlist=[student.tezheng]
list.extend(studentlist)
print(list)
c = np.array(list)#从list变成矩阵
# 遍历每张图像
images = os.listdir('D:/opencv.img')
for image in images:
# 加载图像
current_image = face_recognition.load_image_file("D:/opencv.img/" + image)
# 将加载图像编码为特征向量
current_image_encoded = face_recognition.face_encodings(current_image)[0]
# 将你的图像和图像对比,看是否为同一人
result = face_recognition.compare_faces([c], current_image_encoded, tolerance=0.48) # 容忍度范围,越大要求越低
# 检查是否一致
if result[0] == True:
piutuce=cv2.imread("D:/opencv.img/" + image)
res = cv2.resize(piutuce, (126, 126))
cv2.imshow('yes', res)
cv2.waitKey(0)
cv2.destroyAllWindows()#将正确的图像输出
else:
print("不同人: " + image)

#
return HttpResponse("tt")


models.py代码:

from django.db import models
class ccun(models.Model):
name = models.CharField(max_length=16)
tezheng = models.FloatField(default=1)

数据库展示




推荐阅读
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • Python已成为全球最受欢迎的编程语言之一,然而Python程序的安全运行存在一定的风险。本文介绍了Python程序安全运行需要满足的三个条件,即系统路径上的每个条目都处于安全的位置、"主脚本"所在的目录始终位于系统路径中、若python命令使用-c和-m选项,调用程序的目录也必须是安全的。同时,文章还提出了一些预防措施,如避免将下载文件夹作为当前工作目录、使用pip所在路径而不是直接使用python命令等。对于初学Python的读者来说,这些内容将有所帮助。 ... [详细]
  • Python操作MySQL(pymysql模块)详解及示例代码
    本文介绍了使用Python操作MySQL数据库的方法,详细讲解了pymysql模块的安装和连接MySQL数据库的步骤,并提供了示例代码。内容涵盖了创建表、插入数据、查询数据等操作,帮助读者快速掌握Python操作MySQL的技巧。 ... [详细]
  • Python使用Pillow包生成验证码图片的方法
    本文介绍了使用Python中的Pillow包生成验证码图片的方法。通过随机生成数字和符号,并添加干扰象素,生成一幅验证码图片。需要配置好Python环境,并安装Pillow库。代码实现包括导入Pillow包和随机模块,定义随机生成字母、数字和字体颜色的函数。 ... [详细]
  • 本文总结了使用不同方式生成 Dataframe 的方法,包括通过CSV文件、Excel文件、python dictionary、List of tuples和List of dictionary。同时介绍了一些注意事项,如使用绝对路径引入文件和安装xlrd包来读取Excel文件。 ... [详细]
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • Python实现变声器功能(萝莉音御姐音)的方法及步骤
    本文介绍了使用Python实现变声器功能(萝莉音御姐音)的方法及步骤。首先登录百度AL开发平台,选择语音合成,创建应用并填写应用信息,获取Appid、API Key和Secret Key。然后安装pythonsdk,可以通过pip install baidu-aip或python setup.py install进行安装。最后,书写代码实现变声器功能,使用AipSpeech库进行语音合成,可以设置音量等参数。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 本文介绍了Composer依赖管理的重要性及使用方法。对于现代语言而言,包管理器是标配,而Composer作为PHP的包管理器,解决了PEAR的问题,并且使用简单,方便提交自己的包。文章还提到了使用Composer能够避免各种include的问题,避免命名空间冲突,并且能够方便地安装升级扩展包。 ... [详细]
author-avatar
绿林VS逍遥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有